error types in c language